From 841bb40d783f37e3a46d6f173653397dfed8470e Mon Sep 17 00:00:00 2001 From: Tim Janik Date: Tue, 5 Oct 2004 15:10:50 +0000 Subject: [PATCH] if REQUEST_NEEDED is still set on ::size-allocate, another size-request Tue Oct 5 17:06:26 2004 Tim Janik * gtk/gtkwidget.c (gtk_widget_size_allocate): if REQUEST_NEEDED is still set on ::size-allocate, another size-request has been queued since ::size-request and needs to be requeued. --- ChangeLog | 6 ++++++ ChangeLog.pre-2-10 | 6 ++++++ ChangeLog.pre-2-6 | 6 ++++++ ChangeLog.pre-2-8 | 6 ++++++ gtk/gtkwidget.c | 13 ++++++++++++- 5 files changed, 36 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index c26eea7a4a..7bfe697562 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +Tue Oct 5 17:06:26 2004 Tim Janik + + * gtk/gtkwidget.c (gtk_widget_size_allocate): if REQUEST_NEEDED is still + set on ::size-allocate, another size-request has been queued since + ::size-request and needs to be requeued. + 2004-10-05 Paolo Borelli * gtk/gtkmenutoolbutton.c: rename the activate-menu signal to diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10 index c26eea7a4a..7bfe697562 100644 --- a/ChangeLog.pre-2-10 +++ b/ChangeLog.pre-2-10 @@ -1,3 +1,9 @@ +Tue Oct 5 17:06:26 2004 Tim Janik + + * gtk/gtkwidget.c (gtk_widget_size_allocate): if REQUEST_NEEDED is still + set on ::size-allocate, another size-request has been queued since + ::size-request and needs to be requeued. + 2004-10-05 Paolo Borelli * gtk/gtkmenutoolbutton.c: rename the activate-menu signal to diff --git a/ChangeLog.pre-2-6 b/ChangeLog.pre-2-6 index c26eea7a4a..7bfe697562 100644 --- a/ChangeLog.pre-2-6 +++ b/ChangeLog.pre-2-6 @@ -1,3 +1,9 @@ +Tue Oct 5 17:06:26 2004 Tim Janik + + * gtk/gtkwidget.c (gtk_widget_size_allocate): if REQUEST_NEEDED is still + set on ::size-allocate, another size-request has been queued since + ::size-request and needs to be requeued. + 2004-10-05 Paolo Borelli * gtk/gtkmenutoolbutton.c: rename the activate-menu signal to diff --git a/ChangeLog.pre-2-8 b/ChangeLog.pre-2-8 index c26eea7a4a..7bfe697562 100644 --- a/ChangeLog.pre-2-8 +++ b/ChangeLog.pre-2-8 @@ -1,3 +1,9 @@ +Tue Oct 5 17:06:26 2004 Tim Janik + + * gtk/gtkwidget.c (gtk_widget_size_allocate): if REQUEST_NEEDED is still + set on ::size-allocate, another size-request has been queued since + ::size-request and needs to be requeued. + 2004-10-05 Paolo Borelli * gtk/gtkmenutoolbutton.c: rename the activate-menu signal to diff --git a/gtk/gtkwidget.c b/gtk/gtkwidget.c index 58696d247d..8992752266 100644 --- a/gtk/gtkwidget.c +++ b/gtk/gtkwidget.c @@ -2705,7 +2705,13 @@ gtk_widget_size_allocate (GtkWidget *widget, old_allocation.y != real_allocation.y); if (!alloc_needed && !size_changed && !position_changed) - return; + { + if (GTK_WIDGET_REQUEST_NEEDED (widget)) + { /* another resize has been queued */ + gtk_widget_queue_resize (widget); + } + return; + } g_signal_emit (widget, widget_signals[SIZE_ALLOCATE], 0, &real_allocation); @@ -2744,6 +2750,11 @@ gtk_widget_size_allocate (GtkWidget *widget, gtk_widget_invalidate_widget_windows (widget->parent, invalidate); gdk_region_destroy (invalidate); } + + if (GTK_WIDGET_REQUEST_NEEDED (widget)) + { /* another resize has been queued */ + gtk_widget_queue_resize (widget); + } } /** -- 2.30.2